﻿using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;

namespace WholeSlideImageViewer
{
    public interface IDeepZoomImageSource
    {
        Task<string?> OpenAsync(string fileName);
        RetainableDeepZoomGenerator? Retain(string id);
        Task<string?> GetDziContentAsync(string id);
        Task<IEnumerable<KeyValuePair<string, string>>?> GetTextPropertiesAsync(string id);
        Task<IEnumerable<string>?> GetAssociatedImageNamesAsync(string id);
        Task SendTileAsync(string id, int layer, int col, int row, string format, HttpResponse response);
        Task SendAssociatedImageJpegAsync(string id, string name, HttpResponse response);
    }
}
